<?php
class Admin_ListasController extends Zend_Controller_Action
{
    protected $_lista;
    
    public function init ()
    {
         // Models
        $this->_lista = new Application_Model_Lista();
      
    }
    public function preDispatch ()
    {
        if (! Zend_Auth::getInstance()->getIdentity()) {
            $this->_redirect('/autenticacao');
        }
    }
    public function indexAction ()
    {

        //Pega o valor da pagina inicial
        $pagina = (int) ($this->_getParam('pagina', 1));
        //Pega os dados do model
        $data = $this->_lista->listaAllListas();
        //Cria a paginação dos registros     
        $paginacao = Zend_Paginator::factory($data);
        //Define numeros de registros por pagina
        $paginacao->setItemCountPerPage(10);
        // Define a pagina inicial
        $paginacao->setCurrentPageNumber($pagina);
        $this->view->listaListaPaginacao = $paginacao;

    }
    
    public function addAction ()
    {
        // Formulario Nova Lista
        $form = new Application_Form_Lista();
        $this->view->form = $form;
        if ($this->_request->isPost()) {
            $dadosForm = $this->_request->getPost();
            if ($form->isValid($dadosForm)) {
                $this->_lista->addLista($dadosForm['nome']);
                $this->_redirect('admin/listas');
            }
        }
    }
    
    // excluindo Lista
    public function excluirAction ()
    {
    	// se não existir parametro (id) redireciona para pagina lista inicial
        if ($this->_hasParam('id') == false) {
            $this->_redirect('/admin/listas');
        } else {
            $idLista = $this->_request->getParam('id');
            $this->_lista->excluirLista($idLista);
            $this->_helper->flashMessenger(array('flashmessage' => 'Lista removida com sucesso!'));
            $this->_redirect('/admin/listas');
        }
    }
    
    // editar lista
    public function editarAction ()
    {
	    $rlista = $this->_lista->procura($this->_request->getParam('id'));
	    $form = new Application_Form_Lista();
	    $form->getElement('Criar')->setLabel('Salvar')->setAttrib('title', 'Salvar');
	    $form->populate($rlista);
	    $this->view->form = $form;
	    //Se for via post
	    if($this->_request->isPost())
		{
		    	$data = $this->_request->getPost();
		    	 if ($form->isValid($data)) {
			    	unset($data['criar']); //Remove o submit do array de dados
			    	unset($data['cancelar']);
			    	
			    	$this->_lista->update($this->_request->getParam('id'), $data['nome']);    	
			    	$this->_helper->flashMessenger(array('flashmessage'=>'Lista atualizada com sucesso!'));
			    	$this->_redirect('/admin/listas');
		    	 }
		 }
    }
    
    public function exibeemailsAction ()
    {

    	
    	// se não existir parametro (id) redireciona para pagina lista inicial
        if ($this->_hasParam('id') == false) {
            $this->_redirect('/admin/listas');
        } else {
        	
            $idlista = $this->_request->getParam('id');            
	        //Pega o valor da pagina inicial
	        $pagina = (int) ($this->_getParam('pagina', 1));
	        //Pega os dados do model
	        $data = $this->_lista->exibeEmail($idlista);
	        $nomelista = $this->_lista->procura($idlista);
	        //Cria a paginação dos registros     
	        $paginacao = Zend_Paginator::factory($data);
	        //Define numeros de registros por pagina
	        $paginacao->setItemCountPerPage(10);
	        // Define a pagina inicial
	        $paginacao->setCurrentPageNumber($pagina);
	        $this->view->listaListaPaginacao = $paginacao;
	        $this->view->lista = $nomelista['nome'];
        }

    }
    
    // excluindo email da lista
    public function excluiremailAction ()
    {
    	// se não existir parametro (id) redireciona para pagina lista inicial
        if ($this->_hasParam('idlista') == false || $this->_hasParam('idemail')== false) {
            $this->_redirect('/admin/listas');
        } else {
            $idlista = $this->_request->getParam('idlista');
            $idemail = $this->_request->getParam('idemail');
            $this->_lista->excluiremail($idlista, $idemail);
            $this->_helper->flashMessenger(array('flashmessage' => 'E-mail removido da lista!'));
            $this->_redirect('/admin/listas');
        }
    }
    public function contaEmailListaAction()
    {
    	if ($this->_hasParam('idlista') != false)
    	{	
				$id = $this->_request->getParam('idlista');		    	
		    	$total = $this->_lista->contaEmailLista($id);
		    	$this->view->total = $total[0];
		    	
    	}
    }
    
}

